#include <iostream>
using namespace std;

// class Timer
// {
// public:
//     Timer(int hour = 1, int minute = 1, int second = 1)
//     {
//         _hour = hour;
//         _minute = minute;
//         _second = second;
//     }

//     Timer(Timer& t)
//     {
//         cout << "Timer(Timer& t)" << endl;
//         _hour = t._hour;
//         _minute = t._minute;
//         _second = t._second;
//     }
//     void printf()
//     {
//         cout << _hour << "-" << _minute << "-" << _second << endl;
//     }
// private:
//     int _hour;
//     int _minute;
//     int _second;
// };

class Date
{
public:
    Date(int year = 1, int month = 1, int day = 1)
    {
        cout << " Date(int year = 1, int month = 1, int day = 1)" << endl;
        _year = year;
        _month = month;
        _day = day;
    }


    Date(const Date& d)
    {
        _year = d._year;
        _month = d._month;
        _day = d._day;
        cout << "Date(Date& d)" << endl;
    }

    void print()
    {
        cout << _year << "-";
        cout << _month << "-";
        cout << _day << endl;
    }
private:
    int _year;
    int _month;
    int _day;
};

Date func()
{
    Date d1(2023,11,11);
    //d.print();
    return d1;
}

int main()
{
    Date d(func());
    d.print();
    // Date d = func();
    // d.print();
    // Date d1(2023,11,11);
    // Date d2(d1);
    // d2.print();
    // d2.t.printf();
    return 0;
}

// #include <iostream>
// #include <stdlib.h>
// #include <unistd.h>
// using namespace std;

// class Date
// {
// public:
//     Date(int year = 1, int month = 1, int day = 1)//构造函数
//     {
//         _year = year;
//         _month = month;
//         _day = day;
//     }

//     Date(Date& d)
//     {
//         _year = d._year;
//         _month = d._month;;
//         _day = d._day;;
//     }

//     void print()
//     {
//         cout << _year << "-";
//         cout << _month << "-";
//         cout << _day << endl;
//     }
// private:
//     int _year;
//     int _month;
//     int _day;
// };

// // int main()
// // {
// //     Date d1;
// //     func(d1);
// //     return 0;
// // }


// void func(Date d)
// {
//     while(1)
//     {
//         d.print();
//     }
// }

// int main()
// {
//     Date d1;
//     func(d1);
//     return 0;
// }

// int main()
// {
//     Date d1;
//     Date d2(d1);
//     return 0;
// }

// #include <string.h>
// class Stack
// {
// public:
//     Stack(int capacity = 4)
//     {
//         _a = (int*)malloc(sizeof(int)* capacity);
//         if(_a == nullptr)
//         {
//             perror("malloc fail");
//             exit(-1);
//         }
//         _top = 0;
//         _capacity = capacity;
//     }

//     Stack(Stack& s)
//     {
//         _a = (int*)malloc(sizeof(int)* s._capacity);
//         if(_a == nullptr)
//         {
//             perror("malloc fail");
//             exit(-1);
//         }

//         memcpy(_a, s._a, sizeof(int) * s._top);//拷贝对方的值

//         _top = s._top;
//         _capacity = s._capacity;
//     }

//     void push(int x)
//     {
//         //.....
//     }

//     ~Stack()
//     {
//         cout << "Stack的析构函数" << endl;
//         free(_a);
//         _top = 0;
//         _capacity = 0;
//     }

// private:
//     int* _a;
//     int _top;
//     int _capacity;
// };

// void func(Stack s1)
// {

// }

// void func(Date d1)
// {

// }

// int main()
// {
//     Date d1;
//     Date d2(d1);
//     return 0;
// }
